﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Novapangeia.RepositorioNHibernate;
using Novapangeia.Negocio;
using Novapangeia.Dominio;

namespace Novapangeia.Web
{
    public class BasePage : System.Web.UI.Page
    {
        public RepositorioUsuario RepositorioUsuario { get; set; }
        public RepositorioConstrucao RepositorioConstrucao { get; set; }
        public RepositorioTecnologia RepositorioTecnolocia { get; set; }
        public RepositorioTropa RepositorioTropa { get; set; }
        public RepositorioEstoque RepositorioEstoque { get; set; }
        public RepositorioRelatoriCombate RepositorioRelatorioCombate { get; set; }
        public RepositorioNegociacao RepositorioNegociacao { get; set; }
        public RepositorioTipoUnidade RepositorioTipoUnidade { get; set; }
        public GerenciadorUsuario GerenciadorUsuario { get; set; }
        public CustomHtmlHelper HtmlHelper { get; set; }

        public BasePage()
        {
            RepositorioUsuario = new RepositorioUsuario();
            RepositorioConstrucao = new RepositorioConstrucao();
            RepositorioTecnolocia = new RepositorioTecnologia();
            RepositorioTropa = new RepositorioTropa();
            RepositorioEstoque = new RepositorioEstoque();
            RepositorioRelatorioCombate = new RepositorioRelatoriCombate();
            RepositorioNegociacao = new RepositorioNegociacao();
            RepositorioTipoUnidade = new RepositorioTipoUnidade();
            GerenciadorUsuario = new GerenciadorUsuario();
            HtmlHelper = new CustomHtmlHelper();
        }
    }

    public class LoggedPage : BasePage
    {
        public LoggedPage() : base()
        {
            this.PreLoad += new EventHandler(LoggedPage_PreLoad);
        }

        void LoggedPage_PreLoad(object sender, EventArgs e)
        {
            Usuario usuario = GerenciadorUsuario.consultarUsuarioDaSessao();

            if (usuario == null)
                Response.Redirect("~/Default.aspx");
        }
    }
}